1. Field of the Invention
This invention relates generally to a visualization tool for computer programming and markup language source code.
2. Background
Debugging source code can be a difficult task, even under the best of circumstances. This is owed to the fact that code is written with grammatical and syntactical opening and closing commands, with any number of commands and attributes in between. In the case of plain text files, indentation is only able to convey grouping boundaries, but cannot indicate any additional information about the grouping. Syntax coloring is used to indicate the nature of specific pieces of grammar, but does not convey anything about grouping boundaries or any additional information about the grouping. In both cases, a user must read the source code to gain any insight about the grouping and its parts. In the case of graphical user interface systems, source code is represented with graphics; it is not displayed at all, or is displayed incompletely. While source code presentation systems commonly allow the user to toggle back and forth between the plain text source code and a graphical user interface, they do not present the source code and the GUI together simultaneously.
Employing a graphical user interface along with the source code would be desirable because it would allows a person viewing the information to both read it in the same way they would read a plain text file containing the code, and also scan and recognize certain characteristics of the source code without having to read the code. This would be an advancement over current source code presentation methods which, in the case of plain text files absent of graphical user interface systems, employs indentation, line breaks and/or syntax coloring, and in the case of graphical user interface systems, presents only graphics which represent and replace source code.
Therefore, what is needed is a tool which graphically delineates the grammatical and syntactical boundaries of computer programming and markup language source code groupings in order to present them as individual units and to convey their hierarchical placement in relation to other groupings within the context of their environment. Still further, what is needed is a tool which classifies the nature and/or function of these groupings by color-coding and/or differentiating the boundaries using varying boundary lines such as solid or dashed. By using these types of delineations as a graphical user interface in concert with the actual data, and by making them collapsible and expandable, computer programming and markup language source code would become visually organized and thus can be more easily interpreted, navigated and intuitively understood by the person viewing the information.